import os
from fastapi import APIRouter,Path,Query,Cookie,Header
from typing import Optional,List

app02 = APIRouter()

@app02.get("/")
async def index():
    return {
        "name":os.path.basename(__file__)
    }


# 注意 必须要使用Cookie，否则会当作路径参数或请求参数
@app02.get("/cookie")
async def cookie(cookie_id: Optional[str] = Cookie(None)):
    return {
        "cookie_id":cookie_id
    }



@app02.get("/header")
async def header(user_agent:str = Header(None,convert_underscores=True),x_token:List[str]=Header(None)):
    """
    默认情况下, Header 将把参数名称的字符从下划线 (_) 转换为连字符 (-) 来提取并记录 headers.
　　同时，HTTP headers 是大小写不敏感的，因此，因此可以使用标准Python样式(也称为 “snake_case”)声明它们。
    user_agent -> user-agent ->去Http请求头中查找获取数据
    """
    return {
        'User-Agent':user_agent,
        'x-token':x_token
    }
